1. Field of the Invention
Embodiments of the present invention generally relate to computer systems, and more particularly, to improving the performance of computer systems as the industry transitions to hard disk drives formatted with larger memory blocks.
2. Description of the Related Art
Modern hard disk drives (HDD) internally use a standard block size of 512 data bytes (0.5 KB). This block size has been in use for over 20 years. As a result, 0.5 KB block size is pervasive in all of today's system software, including operating systems and application programs.
Innovations in the disk drive industry have led to the recording density of disk drives increasing dramatically. Naturally, this equates to a decrease in the physical area of the disk required to contain a standard block of data. However, the size of physical defects (e.g. contaminates and scratches) has not decreased in any significant way. Consequently, when physical defects occur within a block, a greater percentage of the data within the block becomes corrupted when compared to less dense drives.
To overcome this problem, a more powerful error correction code (ECC) method is necessary. However, a more powerful ECC necessitates more redundancy, which calls for a greater percentage of a disk's space to be used for ECC, and results in less space for a user's data. One way to mitigate a decrease in data formatting efficiency is to employ the more powerful ECC on a larger standard block. By implementing a larger standard block, the cost of additional redundancy is amortized over additional bytes.
An additional issue to examine is the need of an ECC to have a substantial portion of the data block error free. Despite the power and sophistication of an ECC, error correction requires a significant portion of the data block to be correct. Accordingly, the denser the recording, the greater the number of bytes a given defect may span, and the larger the data block must be to continue to accommodate error correction.
The ideal solution to working with larger standard memory blocks would be for all the operating systems, firmware, and applications, in use today to be changed to work with larger blocks, for example 4 KB memory blocks. In fact, some operating systems, such as Windows Vista, will soon support 4 KB standard blocks. However, due to the number of applications in use today, it is likely to take many years for all such programs to be converted to a 4 KB block size.
Another possible solution to working with larger standard memory blocks is for the disk drive to internally use a larger block size, such as 4 KB, but externally interface with the host using the current 0.5 KB block size. To do this the drive would have to handle the conversion from 0.5 KB logical block size to its internal 4 KB physical block size. The conversion from 0.5 KB to 4 KB may involve mapping eight 0.5 KB logical blocks to one 4 KB physical block. This technique is known as emulation and allows 0.5 KB legacy software to run on 4 KB internal disk drives.
Unfortunately, writing the 0.5 KB blocks to the hard drive in emulation mode requires a read modify write (RMW) operation. An entire 4 KB block is read out of the disk drive, modified with the 0.5 KB write data, and written back to the disk drive. These operations are costly from a performance standpoint and reduce the amount of time a disk can spin down.